package unq.model

import java.util.List
import org.uqbar.commons.utils.Observable
import org.uqbar.commons.model.ObservableUtils
import java.util.ArrayList

@Observable
class Juego {
	@Property Caso caso;
	@Property List<Villano> listaVillanos = new ArrayList
	@Property List<Pais> listaPaises = new ArrayList


    new() {}
    
    def agregarVillano(Villano villano) {
		listaVillanos.add(villano)
		//ObservableUtils.firePropertyChanged(this, "listaVillanos", listaVillanos)
	}
    def agregarPais(Pais p) {
    	if(!listaPaises.contains(p)){
		listaPaises.add(p)
		}
//		ObservableUtils.firePropertyChanged(this, "listaPaises", listaPaises)
	}
    def eliminarPais(Pais p) {
		listaPaises.remove(p)
//		ObservableUtils.firePropertyChanged(this, "listaPaises", listaPaises)
	}
    def List<String> nombresDeVillanos(){
		listaVillanos.map[villano | villano.nombre]
	}

    def Pais paisActual(){
    	getCaso().getPaisActual()
    }

}